<!DOCTYPE HTML>
<html>
<head>
<title>#EscapeChar(和转义序列的说明) | AutoHotkey</title>
<meta name="description" content="The #EscapeChar directive changes the script's escape character (e.g. accent vs. backslash). Also includes the explanation of escape sequences." />
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>#EscapeChar <span class="headnote">(和转义序列的说明)</span></h1>

<p>改变脚本的转义字符(例如重音符与反斜杠).</p>
<p class="note"><strong>注意:</strong> 不推荐在新脚本中使用此指令, 因为 a) 它弊大于利 b) 在 <a href="https://autohotkey.com/v2/">AutoHotkey v2</a> 中不再可用.</p>

<pre class="Syntax"><span class="func">#EscapeChar</span> NewChar</pre>
<h2>参数</h2>
<dl>

  <dt>NewChar</dt>
  <dd><p>指定单个字符.</p></dd>

</dl>
<h2>备注</h2>
<p>转义符用来表明在其后紧跟着的字符不能像平常那样进行解释.</p>
<p>默认的转义符为重音符(`), 在大多数英语键盘的左上角. 使用这个字符而不是反斜杠, 以避免在文件路径中需要两个反斜杠.</p>
<h2>转义序列</h2>
<p>在 AutoHotkey 中, 可以使用以下转义序列(当重音是转义符时):</p>
<table class="info">
  <tr>
    <th style="width:15%">输入这些字符</th>
    <th>得到这些字符</th>
  </tr>
  <tr>
    <td>`,</td>
    <td>
      <p>,(原义的逗号).</p>
    <p class="note"><strong>注意</strong>: 在命令最后一个参数中的逗号不需要转义, 因为程序知道把它们作为原义处理(但为了清楚起见, 最好还是转义他们). 对于 <a href="MsgBox.htm">MsgBox</a> 所有参数同样如此, 因为它会智能的处理逗号.</p>
    </td>
  </tr>
  <tr>
    <td>`%</td>
    <td>%(原义的百分号)</td>
  </tr>
  <tr>
    <td>``</td>
    <td>`(原义的重音符; 即两个连续的转义符产生单个原义字符)</td>
  </tr>
  <tr>
    <td>`;</td>
    <td>
      <p>;(原义的分号).</p> 
    <p class="note"><strong>注意</strong>: 当分号的左边有任何字符时(空格或制表符 <u>除外</u>), 没有必要进行转义, 因为它不会被解释为注释.</p>
    </td>
  </tr>
  <tr>
    <td>`::</td>
    <td>::(原义的双冒号). <span class="ver">[v1.0.40+]</span>: 不再需要对它们进行转义, 除了在<a href="../Hotstrings.htm">热字符串</a>的替换文本中使用其原义.</td>
  </tr>
  <tr>
    <td>`n</td>
    <td>新行(换行 /LF)</td>
  </tr>
  <tr>
    <td>`r</td>
    <td>回车(CR)</td>
  </tr>
  <tr>
    <td>`b</td>
    <td>退格</td>
  </tr>
  <tr>
    <td>`t</td>
    <td>tab(最典型的水平移位)</td>
  </tr>
  <tr>
    <td>`v</td>
    <td>垂直 tab -- 对应的 Ascii 值为 11. 在一些应用程序中可以通过键入 <kbd>Control</kbd>+<kbd>K</kbd> 让它显示出来.</td>
  </tr>
  <tr>
    <td>`a</td>
    <td>警告(铃) -- 对应的 Ascii 值为 7. 在一些应用程序中可以通过键入 <kbd>Control</kbd>+<kbd>G</kbd> 让它显示出来.</td>
  </tr>
  <tr>
    <td>`f</td>
    <td>进纸 -- 对应的 Ascii 值为 12. 在一些应用程序中可以通过键入 <kbd>Control</kbd>+<kbd>L</kbd> 让它显示出来.</td>
  </tr>
  <tr>
    <td>Send</td>
    <td>以默认(非原始) 模式使用 <a href="Send.htm">Send 命令</a>或<a href="Hotstrings.htm">热字串</a>时, 像 {}^!+# 这些字符具有特殊含义. 因此, 要使用它们的原义字符, 必须把它们包围在大括号中. 例如: <code>Send {<strong>^</strong>}{<strong>!</strong>}{<strong>{</strong>}</code>.</td>
  </tr>
  <tr>
    <td>""</td>
    <td>在<a href="../Variables.htm#Expressions">表达式</a>中, 原义字符串内的两个连续的引号被解析为单个原义的引号. 例如: <code>Var := "The color ""red"" was found."</code>.</td>
  </tr>
</table>
<h2>相关</h2>
<p><a name="DerefChar"></a><a name="Delimiter"></a>还有下面这些极少使用的指令; 它们的用法如这些例子所示:</p>
<pre>#DerefChar #  <em>; 把默认的引用符号 % 改为此符号.</em>
#Delimiter /  <em>; 把默认的分隔符号逗号改为此符号.</em></pre>
<h2>示例</h2>
<pre class="NoIndent">#EscapeChar \  <em>; 把默认的重音符(`) 改为反斜杠.</em></pre>

</body>
</html>